home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Programming Sound Cards
/
Programming Sound Cards.iso
/
sound_36
/
pb-sb120.exe
/
SBMIX.BAS
< prev
next >
Wrap
BASIC Source File
|
1995-01-20
|
3KB
|
89 lines
'****************************************************************************
'
' -=≡ Sound Blaster(tm) Unit für PowerBasic 3.0c ≡=-
' Version 1.20
'
' >>> Source Code zur Ansteuerung des SBPro Mixer Chip 1345 <<<
'
' entwickelt von Th.Gohel Fido: 2:2410/308.12
' BasNet: 130:1313/102
' Internet: Th.Gohel@wibo.berlinet.in-berlin.de
'
' letztes Update 20.01.1995
'
' Hinweis: Diese Source enthält die wichtigsten Funktionen um den SBPro-
' Mixer ansteuern zu können. Da der SB16-Mixerchip 1745 abwärts-
' kompatibel zum 1345 ist, können die Routinen auch auf eine SB16
' und höher angewandt werden. Der SB16-Mixer rechnet die Mixer-
' werte automatisch auf seine eigenen Mixerwerte um.
'
' Test: Zum Test sollten Sie ihr Mixerprogramm starten, dann dieses
' Demo in der PowerBasic-IDE kompilieren und jetzt den TSR-Mixer
' per Hotkey (meist ALT-1) aufrufen.
'
'
' Die Register des Chip 1345/1745 in dieser Routine:
'
' MixReg% = 1: Voice Lautstärke setzen
' MixReg% = 2: Master Lautstärke setzen
' MixReg% = 3: MIDI Lautstärke setzen
' MixReg% = 4: LineIn Lautstärke setzen
'
'****************************************************************************
$COMPILE EXE "SBMIX.EXE"
PUBLIC SBPort%
SBPort% = &h220 :' Port der Sound Blaster
DEMO:
SBMix4Bit 15, 15 ,1 :' Voice
SBMix4Bit 15, 15 ,2 :' Master
SBMix4Bit 0, 0 ,3 :' MIDI
SBMix4Bit 0, 0 ,4 :' Line
END
FUNCTION SBMix4Bit(BYVAL SBLeftLevel%, BYVAL SBRightLevel%, MixReg%) public
IF SBLeftLevel% < 0 OR SBLeftLevel% > 15 THEN EXIT FUNCTION
IF SBRightLevel% < 0 OR SBRightLevel% > 15 THEN EXIT FUNCTION
SELECT CASE MixReg%
CASE 1: SBMixRegister% = &h04 :'Voice
CASE 2: SBMixRegister% = &h22 :'Master
CASE 3: SBMixRegister% = &h26 :'FM/MIDI
CASE 4: SBMixRegister% = &h2E :'Line In
CASE ELSE: EXIT FUNCTION
END SELECT
SBMixPort% = SBPort% + 4
' *** linker Kanal ***
! mov ah, SBLeftLevel%
! mov dx, SBMixPort%
! mov al, SBMixRegister%
! out dx, al
! inc dx
! in al, dx
! and al, &hf
! mov cl, 4
! shl ah, cl
! or al, ah
! out dx, al
'*** rechter Kanal ***
! mov ah, SBRightLevel%
! mov dx, SBMixPort%
! mov al, SBMixRegister%
! out dx, al
! inc dx
! in al, dx
! and al, &hf0
! and ah, &hf
! or al, ah
! out dx, al
END FUNCTION